package com.itheima.functioninterface;

/**
 * <h1>ysm</h1>
 *
 * @author <a href="11n_yd2h5e1jx8@dingtalk.com">叶世铭</a>
 * @since 2024/1/29
 */
public class FunctionInterfaceDemo1 {

    public static void main(String[] args) {
        String str = "hello world";

        //原始方法
        System.out.println(toUpperCase(str));

        //使用函数式接口
        String result1 = toLowerCase(new MyFun<String>() {
            @Override
            public String getValue(String s) {
                return s.toLowerCase();
            }
        }, str);
        System.out.println(result1);

        //函数式接口lambda简化
        String result2 = toLowerCase(s -> s.toUpperCase(), str);
        System.out.println(result2);

    }

    // 定义一个方法，将给定的字符串转为大写
    public static String toUpperCase(String str) {
        return str.toUpperCase();
    }

    /**
     * 将给定的字符串转为大写
     *
     * @param function 函数式接口
     * @param str      给定字符串
     * @return
     */
    public static String toLowerCase(MyFun<String> function, String str) {
        return function.getValue(str);
    }

}
